package psn.hui.sys.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

import psn.hui.sys.domain.Menu;
import psn.hui.sys.mapper.MenuMapper;
import psn.hui.sys.service.MenuService;
import psn.hui.sys.utils.DataGridView;
import psn.hui.sys.vo.MenuVo;

@Service
public class MenuServiceImpl implements MenuService{
	
	@Autowired
	private MenuMapper menuMapper;
	/**
     * 	条件查询所有菜单
     */
	@Override
	public List<Menu> queryAllMenuForList(Menu menu) {
		return menuMapper.queryAllMenu(menu);
	}
	/**
	 * 根据用户id获取其可用的菜单
	 * @param menu
	 * @param userId
	 * @return
	 */
	@Override
	public List<Menu> queryMenuByUserIdForList(Menu menu, Integer userId) {
		return menuMapper.queryMenuByUserId(menu.getAvailable(), userId);
	}
	/**
	 * 动态sql插入菜单数据
	 */
	@Override
	public int insertSelective(Menu record) {
		return menuMapper.insertSelective(record);
	}
	/**
	 * 根据id修改菜单数据
	 */
	@Override
	public int updateByPrimaryKeySelective(Menu record) {
		return menuMapper.updateByPrimaryKey(record);
	}
	/**
	 * 根据id删除菜单数据
	 */
	@Override
	public int deleteById(Integer id) {
		int rs1 = menuMapper.deleteByPrimaryKey(id);
		int rs2 = menuMapper.deleteRoleMenuByMid(id);
		//删除菜单，还要同时删除其关联的关系表 sys_role_menu中的相关数据，防止冗余以及出错
		return rs1+rs2;
	}
	/**
	 * 跟据id统计子菜单数量
	 */
	@Override
	public int countChildrenById(Integer id) {
		return menuMapper.countChildrenById(id);
	}
	
	/**
	 * 	根据rid查询拥有的菜单
	 */
	@Override
	public List<Menu> queryMenuByRid(Integer rid) {
		return menuMapper.queryMenuByRid(rid);
	}
}
